buildApp( 'forget',{
    vcodeInterval : null ,

    vcodeDom : '.forget_vcode' ,

    init : function(){
        this.initValidform( 'forget_valid_form' ) ;
        this.initValidform( 'forget_pwd_form' ) ;
        //绑定授权的提交
        $('.forget_valid').click( this.forgetVCodeSubmit.bind(this) ) ;

        //提交密码
        $('.forget_pwd').click( this.forgetPwdSubmit.bind(this) ) ;

        this.bindVCode() ;
    },

    /**
     * 绑定获取验证码事件
     */
    bindVCode : function(){
        $(this.vcodeDom).unbind( "click" ) ;
        $(this.vcodeDom).text( '获取短信验证码' ) ;
        if( this.vcodeInterval ){
            clearInterval( this.vcodeInterval ) ;
        }
        $(this.vcodeDom).click( this.forgetVCode.bind(this) ) ;
    } ,

    /**
     * 解除绑定获取验证码事件并且开始计时
     */
    unbindVCodeAndStartTime : function(){
        $(this.vcodeDom).unbind( "click" ) ;
        //开启60秒计时，间隔时间1秒
        var timeout = 60 ;
        this.vcodeInterval = setInterval(function(){
            if( timeout==0 ){
                //结束循环，并重新绑定点击验证码
                if( this.vcodeInterval ){
                    clearInterval( this.vcodeInterval ) ;
                    this.vcodeInterval = null ;
                    this.bindVCode() ;
                }
            }else{
                $(this.vcodeDom).text( '剩余'+timeout+'秒' ) ;
                timeout-- ;
            }
        }.bind(this) , 1000 ) ;

    } ,

    /**
     * 忘记密码的验证码发送
     */
    forgetVCode : function(){
        var mobile = this.getFormData('forget_valid_form').u ;
        if( !mobile ){
            toastr.error( '手机号格式不正确' ) ;
            return ;
        }

        this.unbindVCodeAndStartTime() ;

        $.ajax({
            url : '/front/forget/vcode' ,
            data : {
                mobile : mobile
            } ,
            success : function(data) {
                if(data && data.success){
                    toastr.success( '短信验证码发送成功~' ) ;
                }else{
                    //重新绑定验证
                    this.bindVCode() ;
                    toastr.error( data.message || '短信验证码发送失败' ) ;
                }
            }.bind(this)
        });
    } ,

    /**
     * Vcode提交验证
     */
    forgetVCodeSubmit : function(){
        this.checkValidform( 'forget_valid_form' , function(formData){
            $.ajax({
                url : '/front/forget/validvcode' ,
                data : formData ,
                success : function(data) {
                    if(data && data.success){
                        //记录提交忘记密码的用户标识
                        this.u = formData.u ;
                        this.iden = data.iden ;

                        $('#forget_valid_form').hide() ;
                        $('#forget_pwd_form').show() ;
                        $('#forget_success_form').hide() ;
                    }else{
                        toastr.error( data.message ) ;
                    }
                }.bind(this)
            });
        }.bind(this)) ;
    } ,

    /**
     * 忘记密码提交
     */
    forgetPwdSubmit : function(){
        this.checkValidform( 'forget_pwd_form' , function(formData){
            $.ajax({
                url : '/front/forget/reset' ,
                data : {
                    u : this.u ,
                    iden : this.iden ,
                    p : formData.p
                } ,
                success : function(data) {
                    if(data && data.success){
                        $('#forget_valid_form').hide() ;
                        $('#forget_pwd_form').hide() ;
                        $('#forget_success_form').show() ;
                        this.forgetSuccess() ;
                    }else{
                        toastr.error( data.message ) ;
                    }
                }.bind(this)
            });
        }.bind(this)) ;
    },
    /**
     * 忘记密码成功
     */
    forgetSuccess : function(){
        var timeout = 3 ;
        $('.forget_success_timeout').text( timeout ) ;
        setInterval(function(){
            if( timeout==0 ){
                window.location = "/login" ;
            }else{
                timeout-- ;
                $('.forget_success_timeout').text( timeout ) ;
            }
        }.bind(this) , 1000 ) ;
    }

}) ;